/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.controller;

import br.com.documentar.interfacee.InterfaceController;
import br.com.documentar.model.ConsultarDocumentoModel;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Santos
 */
public class ConsultarDocumentoController implements InterfaceController<br.com.documentar.model.ConsultarDocumentoModel> {

    private final br.com.documentar.DAO.ConsultarDocumentoDAO dao = new br.com.documentar.DAO.ConsultarDocumentoDAO();

    @Override
    public ConsultarDocumentoModel getModel() {
        return new br.com.documentar.model.ConsultarDocumentoModel();
    }

    @Override
    public DefaultTableModel insertTableModel(ConsultarDocumentoModel model) {
        model.getModelTable().setNumRows(0);
        for (br.com.documentar.model.ConsultarDocumentoModel p : dao.getDados(model)) {
            model.getModelTable().addRow(new Object[]{
                p.getDocumento().getCodigo(),
                p.getProduto().getCodigo() + " - " + p.getProduto().getNome(),
                p.getCategoriaVersao().getVersao().getCodigo() + " - " + p.getCategoriaVersao().getVersao().getNome(),
                p.getCategoriaVersao().getCategoria().getCodigo() + " - " + p.getCategoriaVersao().getCategoria().getNome(),
                p.getCategoriaVersao().getTelaModel().getCodigo() + " - " + p.getCategoriaVersao().getTelaModel().getNome(),
                p.getDocumento().getAba(), p.getDocumento().getPosicao(), p.getDocumento().getNomeCampo(),
                p.getDocumento().getFuncaoParamentro(), p.getDocumento().getExemplo(), p.getDocumento().getImagemTela(),
                p.getDocumento().getAnexo(), p.getDocumento().getLinkVideo(),
                p.getTabela().getCodigo() + " - " + p.getTabela().getNome(),
                p.getTabela().getNomeAmigavel(),
                p.getTabelaVersao().getTipoBanco(),
                p.getTabelaVersao().getNomeBanco(),
                p.getTabelaVersao().getAcao(),
                p.getTabelaVersao().getTableSpace(),
                p.getTabelaVersao().getTemporaria(),
                p.getTabelaVersao().getDono(),
                p.getColuna().getCodigo() + " - " + p.getColuna().getNome(),
                p.getColuna().getNomeAmigavel(),
                p.getColunaVersao().getAcao(),
                p.getColunaVersao().getTipoDadoPadrao(),
                p.getColunaVersao().getTamanhoDadoPadrao(),
                p.getColunaVersao().getAceitaNullPadrao(),
                p.getObjetoModel().getCodigo() + " - " + p.getObjetoModel().getNome(),
                p.getObjetoModel().getNomeAmigavel()});
        }
        return model.getModelTable();
    }

    @Override
    public DefaultTableModel getDadosTableModel(ConsultarDocumentoModel model) {
        return insertTableModel(model);
    }

    @Override
    public boolean setDados(ConsultarDocumentoModel model) {
        return dao.setDados(model);
    }

    @Override
    public DefaultComboBoxModel getDadosComboBoxModel(ConsultarDocumentoModel model) {
        return insertComboBoxModel(model);
    }

    @Override
    public DefaultComboBoxModel insertComboBoxModel(ConsultarDocumentoModel model) {
        for (br.com.documentar.model.ConsultarDocumentoModel p : dao.getDados(model)) {
            model.getModelComboBox().addElement(p.getDocumento());
        }
        return model.getModelComboBox();
    }

    /**
     * Adicionar a interface, já que esse metodo será utilizado em vários
     * lugares
     *
     * @param model
     * @return
     * @deprecated remover metodo velho
     */
    public String getCaminho(ConsultarDocumentoModel model) {
        return dao.getCategoria(model);
    }

    /**
     * *
     * @deprecated remover metodo velho
     * @param model
     * @return
     */
    public String getCaminhoSemProprioItem(ConsultarDocumentoModel model) {
        return dao.getCategoriaSemItemProprio(model);
    }

    /**
     * Metodo generico para retornar os dados da lista
     *
     * @param model
     * @return
     */
    public List<ConsultarDocumentoModel> getDados(ConsultarDocumentoModel model) {
        return dao.getDados(model);
    }
}
